Parameterization, which refers to the generation of a display list, is typically accomplished by a host processing unit which executes a parameterization code. A display list includes a plurality of display instruction/parameter (I/P) sets, each including a display instruction and n associated display parameters required to generate a graphical image on a display device such as, for example, a cathode ray tube. Some display lists contain I/P sets of a variable length wherein each of the display I/P sets has a display instruction word and a variable number of display parameter words associated with the display instruction word. Such display lists shall be referred to herein as variable length display lists. Typically, the display list is transfered to and stored in a memory unit of a graphics subsystem before being executed. The display list is then accessed from the memory unit and executed by the graphics subsystem. The display list is typically executed by a graphics processor of the graphics subsystem which is connected as an I/O peripheral to the host processing unit.
There are a variety of potential error sources which can cause an error in the execution of a variable length display list. One potential error source is erroneous parameterization. For example, execution of a polygon instruction to render a polygon on the display device requires a certain number of parameter words. If the parameterization code executed by the host processor incorrectly loads the display list with an incorrect number of parameter words, then the display list is corrupted. For example, corruption can occur if ten display parameter words are required to render a polygon having ten vertices and the parameterization code incorrectly loads the display list with only eight display parameter words followed by a next display instruction. Without error detection, the display processor erroneously assumes that the next display instruction is the ninth display parameter associated with the previous display instruction and the display processor then renders an erroneous image on the display device and/or enters a non recoverable error mode. This example illustrates the situation where an instruction is erroneously treated as data due to erroneous parameterization.
Another potential error source in a variable length display list is a wrong address count due to an invalid display instruction branch. For example, an erroneous "go to" or "call" instruction (branch) could result in a jump to a wrong address containing no code or illegal code. A jump to such an address can result in undefined hardware behavior which causes a "crash" (e.g., unrecoverable error.) This example illustrates the situation where data is erroneously treated as an instruction.
Another potential error source in a variable length display list is corruption in transmission of signals carrying the display list from one point in the system to another. Such corruption in transmission of signals carrying the display list can result from a variety of factors including faulty components and inadequate design tolerances. Yet another potential source of errors in a display list is transient failure of a memory unit in which the display list is stored.
Therefore, a method and apparatus is needed for detecting errors incurred in a variable length display list as a result of erroneous parameterization or an illegal branch instruction (e.g., branch to data). A method and apparatus is also needed for detecting errors incurred in a variable length display list as a result of transmission signal corruption or failure of a memory unit in which the display list is stored. What is needed further is a system as above that not only detects such errors, but provides a mechanism for reporting the errors (e.g., for debugging) and also prevents the errors from causing non recoverable errors in the hardware system during image rendering. The present invention provides the above advantageous functionality.